const fs = require('fs')
    /**
     *检查指定目录是否为空
     *
     * @param {string} [dir=process.cwd()]
     * @returns 若为空目录则返回true；反之则返回false
     */
function isEmptyFolder(dir = process.cwd()) {
    var currentDir = fs.readdirSync(dir)
    return currentDir.length === 0
}

/**
 * @function 检查指定路径是否存在
 * @param path 判断路径是否存在
 * @param callback 回调函数
 */
function isExistFolder(path, callback) {
    return new Promise((resolve, reject) => {
        // fs.exists(path, function(exists) {
        //   console.log(exists ? "创建成功" : "创建失败");
        //   if (callback) {
        //     callback(exists,path)
        //   }
        // });
        //判断文件/目录是否存在
        fs.access(path, (err) => {
            if (callback) {
                callback(err, path);
            }
            if (err) {
                resolve(false);
            } else {
                resolve(true);
            }
        });
    });
}
/**
 * 
 * @param {*} path 
 * @param {*} content 
 * @param {*} callback 
 */
function editFile(path, content, callback) {
    /* writeFile():用来写入文件，有四个参数
   参数1：文件名称，包括文件格式 ，比如1.txt
   参数2：需要写入文件中的内容 ,比如"welcome to you"
   参数3：可选的，配置对象{flag:"a"或"w"}    flag属性： a 追加写入   w 正常写入(默认值)  
   参数4：写入时的错误信息
   注意：当写入的内容已经存在时，执行写入文件操作时会覆盖掉原有的文件
    */
    fs.writeFile(path, content, { flag: "w" }, function(err) {
        if (err) {
            callback("动态文件生成失败,请自行修改")
        }
        callback("动态文件生成成功")
    });
}

function getFastOrder() {
    var argv;
    try {
        argv = JSON.parse(process.env.npm_config_argv).original;
    } catch (ex) {
        argv = process.argv;
    }
    return argv
}
module.exports = {
    isEmptyFolder,
    editFile,
    isExistFolder,
    getFastOrder
}